// utils/util.js
const util = {
  /**
   * 显示提示信息（支持跳转）
   * @param {Object|string} opt - 配置项或直接传入提示文本
   * @param {string} [to_url] - 可选的跳转地址
   */
  Tips: function (opt, to_url) {
    if (typeof opt === 'string') {
      opt = { title: opt };
    }
    opt.icon = opt.icon || 'none';
    opt.duration = opt.duration || 2000;

    wx.showToast(opt);

    // 如果有跳转地址，延时跳转
    if (to_url) {
      setTimeout(() => {
        wx.navigateTo({ url: to_url });
      }, opt.duration);
    }
  },

  /**
   * 显示消息提示并在 Toast 消失后执行回调
   * @param {string} content - 提示内容
   * @param {Function} [callback] - 可选回调函数
   */
  msg(content, callback) {
    wx.showToast({
      title: content || '操作成功', // 默认消息内容
      icon: 'none', // 图标类型
      duration: 2000, // 显示时间
      success() {
        if (typeof callback === 'function') {
          setTimeout(() => {
            callback();
          }, 2000);
        }
      },
    });
  },

  /**
   * 将时间戳转换为指定格式的日期
   * @param {number} timestamp - 需要转换的时间戳
   * @param {string} format - 日期格式，默认是 'Y-m-d'
   * @returns {string} 格式化后的日期字符串
   */
  formatDate(timestamp, format = 'Y-m-d') {
    const date = new Date(timestamp * 1000); // 转换为毫秒时间戳

    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0');
    const day = String(date.getDate()).padStart(2, '0');
    const hours = String(date.getHours()).padStart(2, '0');
    const minutes = String(date.getMinutes()).padStart(2, '0');
    const seconds = String(date.getSeconds()).padStart(2, '0');

    return format
      .replace(/Y/g, year)
      .replace(/m/g, month)
      .replace(/d/g, day)
      .replace(/H/g, hours)
      .replace(/i/g, minutes)
      .replace(/s/g, seconds);
  },
};

module.exports = util;
